package eu.swiec.bearballin.common.sftp; import java.io.OutputStream; import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSchException; import com.jcraft.jsch.Session; import com.jcraft.jsch.SftpException; import com.jcraft.jsch.UserInfo; public class SftpTestFilesDownloader { JSch jSch; Session session; public void addIdentity(String prvKey, String passPhrase) { jSch = new JSch(); try { System.out.println("Using private key:\n" + prvKey + "\npassphrase:" + passPhrase); jSch.addIdentity(prvKey, passPhrase); } catch (JSchException e) { e.printStackTrace(); } } public void setSession(String username, String host, int port) { try { session = jSch.getSession(username, host, port); } catch (JSchException e) { e.printStackTrace(); } } public void sftpGetFile(String src, String dst) throws Exception { sftpGetFiles(new String[]{src}, dst); } public void sftpGetFileToStream(String sourceFiles, OutputStream outputStream) throws SftpException, JSchException { sftpGetFilesToStream(new String[]{sourceFiles}, outputStream); } public void sftpGetFilesToStream(String[] sourceFiles, OutputStream outputStream) throws SftpException, JSchException { if (session != null || jSch != null) { ChannelSftp sftp = sftpConnection(); for (String s : sourceFiles) { sftp.get(s, outputStream, new ConsoleProgressMonitor()); } sftp.disconnect(); session.disconnect(); } else { throw new RuntimeException("Initialisation Error"); } } private ChannelSftp sftpConnection() throws JSchException { UserInfo ui = new NoGUIUserInfo(); // MyUserInfo implements session.setUserInfo(ui); session.connect(); Channel channel = session.openChannel("sftp"); ChannelSftp sftp = (ChannelSftp) channel; sftp.connect(); return sftp; } public void sftpGetFiles(String[] src, String dst) throws Exception { if (session != null || jSch != null) { ChannelSftp sftp = sftpConnection(); for (String s : src) { sftp.get(s, dst, new ConsoleProgressMonitor()); } sftp.disconnect(); session.disconnect(); } else { throw new Exception(); } } }